1. Field of the Invention
Embodiments of the present invention pertain to operating systems.
2. Related Art
The interface between the kernel of an operating system and applications running on top of the operating system is a crucial component of an efficient computing environment. Application programming interfaces (APIs) and application binary interfaces (ABIs) make the resources of the kernel available to other programs. A conflict exists, when designing these interfaces, between creating an efficient interface and a flexible interface.
Some interfaces for interacting with the kernels of modern operating systems are designed to be efficient but immutable. Except when the operating system is undergoing a major revision, no changes are made to these low-level interfaces, as any minor alteration could break existing applications which are relying on the interface to behave in a well-known manner. Other interfaces allow for a more flexible system, but at the cost of increasing the resources necessary to handle the interface; in order to allow more flexibility, the interface must itself be more complicated, which leads to a larger kernel.